package com.fastloan.mgt.application.base.service;

import com.fastloan.common.model.CheckResult;
import com.fastloan.mgt.application.base.enums.ApplicationStatusEnum;
import com.fastloan.mgt.application.base.model.Application;
import com.fastloan.mgt.application.base.model.ApplicationVo;
import com.fastloan.mgt.application.repay.model.vo.AppCurrRepayExt;
import com.kawins.base.BaseService;
import com.kawins.result.ResultTo;

import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.util.List;
import java.util.Map;

/**
 * @author yanwe
 * createTime 2017-11-2017/11/8 14:32
 */
public interface ApplicationService extends BaseService<Application> {

    ApplicationVo selectApplicationVo(String applicationId);

    List<ApplicationVo> selectApplicationVoList(Map<String, Object> map);

    ResultTo submitApplication(ApplicationVo applicationVo);

    void startSurvey(String applicationId);

    void endSurvey(String applicationId);

    void modifyApplicationStatus(String applicationId, ApplicationStatusEnum applicationStatusEnum);

    List<AppCurrRepayExt> queryMineApp(Map<String, Object> map);

    void createApplicationPDF(String applicationId, OutputStream outputStream);

    CheckResult verifyProductRule(ApplicationVo applicationVo);

}
